$(document).ready(function () {
    // var code = parent.strs[1].split('=')[1]
	// parent.dynamicMenu(code)
	// 加载列表
    getCategoryList();

    bindButton();

    initCategoryTree();
});

function getCategoryList() {
    $('#categoryList').bootstrapTable({
        url: '/dataCollection/category/findCategoryListByPage',            //请求后台的URL（*）
        method: 'POST',            //请求方式（*）
        toolbar: '#toolbar',        //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        queryParams:queryParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [5, 25, 50, 100],        //可供选择的每页的行数（*）
        search: false,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
        strictSearch: false,
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        clickToSelect: false,                //是否启用点击选中行
        // height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",                     //每一行的唯一标识，一般为主键列
        showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
        cardView: false,                    //是否显示详细视图
        smartDisplay: false,
        detailView: false,                   //是否显示父子表
        responseHandler: function(res) {
            return {
                "total": res.result.total,//总页数
                "rows": res.result.records//数据列表
            };
        },
        columns: [
            {
                field: 'id',
                title: '编号',
                visible: false
            }, {
                field: 'categoryName',
                title: '分类名称'
            }, {
                field: 'addTime',
                title: '创建时间'
            }, {
                field: 'editTime',
                title: '更新时间'
            }, {
                field: 'operate',
                title: '操作',
                width: 150,
                align: 'center',
                valign: 'middle',
                formatter: actionFormatter
            }]
    });
}

function queryParams(params) {
    return  JSON.stringify({
        rows: params.limit,
        page: (params.offset / params.limit) + 1
    }
    );
}

function actionFormatter(value, row, index) {
    return [
        '<a class="btn btn-primary btn-xs" id="edit" type="button" data-id="'+ row.id +'"><i class="fa fa-edit" aria-hidden="true"></i>&nbsp;编辑</a>',
        '&nbsp;&nbsp;',
        '<a class="btn btn-primary btn-xs" id="delete" type="button" data-id="'+ row.id +'"><i class="fa fa-trash" aria-hidden="true"></i>&nbsp;删除</a>'
    ].join('');
}

function bindButton() {
    $('#categoryList').delegate('#edit','click',function(e) {
        var $target = $(e.currentTarget);
        var categoryId = $target.data('id');
        location.href = "./edit.html?categoryId=" + categoryId;
    });

    $('#categoryList').delegate('#delete', 'click', function(e) {
        var $target = $(e.currentTarget);
        var categoryId = $target.data('id');
        layer.confirm('确定删除该分类？', {
                btn: ['确定', '取消']
            },
            function(index){
                layer.close(index);
                $.ajax({
                    type: 'DELETE',
                    async: true,
                    url: '/dataCollection/category/delete?id='+categoryId,
                    success: function (data) {
                        if (data.success) {
                            location.replace(location.href);
                        } else {
                            layer.alert(data.message, {icon: 5});
                        }
                    },
                    error: function () {
                        layer.alert("系统出现问题，请联系管理员");
                    },
                    dataType: 'json'
                });
            },
            function(){
                layer.msg('取消操作');
            }
        );
    });
}

function initCategoryTree(){
    $("#categoryTree").jstree({
        'core': {
            "animation" : 0,
            "check_callback" : true,
            'expand_selected_onload': false,
            "checkbox": false,
            "multiple": false,
            "themes": {
                "dots": true,      //点之间连接线
                "variant" : "large",//加大
                "ellipsis" : true //文字多时省略
            },
            "data":[
                {
                    "id": "0",
                    "text": "/",
                    "state":{"opened":true},
                    "children": [
                        {
                            "id": "01",
                            "text": "抽取",
                            "state":{"opened":true},
                            "children": [
                                {'text': 'child1',"icon": "jstree-file"},
                                {'text': 'child2',"icon": "jstree-file"}
                            ]
                        },
                        {
                            "id": "02",
                            "text": "清洗",
                            "state":{"opened":true},
                            "children": [
                                {'text': 'child1'},
                                {'text': 'child2'}
                            ]
                        },
                        {
                            "id": "03",
                            "text": "加载",
                            "state":{"opened":true},
                            "children": [
                                {'text': 'child1'},
                                {'text': 'child2'}
                            ]
                        },
                        {'text': 'child',"icon": "jstree-file"},
                    ]
                }
            ]
        },
        "plugins": ["state","contextmenu","themes"],
        "contextmenu":{
            "items": {
                "create": {
                    "label": "新增",
                    "icon" : "glyphicon glyphicon-plus",
                    "action": function (data) {
                        var inst = $('#categoryTree').jstree(true);//jQuery.jstree.reference(data.reference);
                        var obj = inst.get_selected()[0];
                        //ajax 交互后台
                        console.log(inst.get_text(obj));
                        var newNode = inst.create_node(obj,'请输入名称',"last","","");
                        if(newNode) {
                            inst.edit(newNode);
                        }
                    }
                },
                "rename": {
                    "label":"重命名",
                    "icon" : "glyphicon glyphicon-edit",
                    "action":function(data){
                        var inst = $('#categoryTree').jstree(true);//jQuery.jstree.reference(data.reference);
                        var obj = inst.get_selected()[0];
                        //alert(obj.id + ": " + obj.text);
                        inst.edit(obj);
                        console.log(obj.text);
                    }
                },
                "delete":{
                    "label":"删除",
                    "icon" : "glyphicon glyphicon-remove",
                    "action":function(data){
                        var inst = $('#categoryTree').jstree(true);//jQuery.jstree.reference(data.reference);
                        var obj = inst.get_selected()[0];
                        if(confirm("删除此节点将会连同子节点一起删除，确定要删除吗？")){
                            if(1 == 1){
                                $("#categoryTree").jstree().delete_node(obj);

                                //alert("删除菜单成功！");
                            }else{
                                alert("删除菜单失败！");
                            }
                        }
                    }
                },
            "refresh":{
                "label":"刷新",
                "icon" : "glyphicon glyphicon-refresh",
                "action":function(data){
                    //var inst = jQuery.jstree.reference(data.reference);
                    //var obj = inst.get_selected()[0];
                    $("#categoryTree").jstree().refresh();
                    alert("刷新菜单成功！");

                    }
                }
            }
        }
    }).on("ready.jstree", function(e, data) {
// 默认关闭/收起宣布
        $('#categoryTree').jstree().close_all();
    });;

}

//刷新树
function refreshTree(){
    $("#categoryTree").jstree("refresh"); //刷新树
}

var isOpenAll=0;

//折叠展开树
function toggleAll(){
    if(isOpenAll==0)
    {
        $("#categoryTree").jstree().open_all();
        isOpenAll=1;
    }
    else
    {
        $("#categoryTree").jstree().close_all();
        isOpenAll=0;
    }
}

function demo_create() {
    var ref = $('#categoryTree').jstree(true),
        sel = ref.get_selected();
    if(!sel.length) { return false; }
    sel = sel[0];
    sel = ref.create_node(sel, "请输入名称");
    if(sel) {
        ref.edit(sel);
    }
};
function demo_rename() {
    var ref = $('#categoryTree').jstree(true),
        sel = ref.get_selected();
    if(!sel.length) { return false; }
    sel = sel[0];
    ref.edit(sel);
};
function demo_delete() {
    var ref = $('#categoryTree').jstree(true),
        sel = ref.get_selected();
    if(!sel.length) { return false; }
    ref.delete_node(sel);
};

//jstree选中事件
$("#categoryTree").bind("select_node.jstree", function (e, data) {
console.log(data.node.id+":"+data.node.text);
});

function initTaskList() {
    $('#taskList').bootstrapTable({
        //url: '/dataCollection/category/findCategoryListByPage',            //请求后台的URL（*）
        //method: 'POST',            //请求方式（*）
        //toolbar: '#toolbar',        //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        queryParams:queryParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [5, 25, 50, 100],        //可供选择的每页的行数（*）
        search: false,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
        strictSearch: false,
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        clickToSelect: false,                //是否启用点击选中行
        // height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",                     //每一行的唯一标识，一般为主键列
        showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
        cardView: false,                    //是否显示详细视图
        smartDisplay: false,
        detailView: false,                   //是否显示父子表
        responseHandler: function(res) {
            return {
                "total": res.result.total,//总页数
                "rows": res.result.records//数据列表
            };
        },
        columns: [
            {
                field: 'id',
                title: '编号',
                visible: false
            },  {
                field: 'taskName',
                title: '任务名称'
            }, {
                field: 'path',
                title: '所属分类'
            }, {
                field: 'rep',
                title: '资源库'
            }, {
                field: 'operate',
                title: '操作',
                width: 150,
                align: 'center',
                valign: 'middle',
                formatter: actionFormatter
            }]
    });
}